package com.zlz.server.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zlz.server.pojo.Admin;
import com.zlz.server.pojo.RespBean;
import com.zlz.server.pojo.Role;
import org.apache.ibatis.annotations.Param;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author efire
 * @since 2021-01-16
 */
public interface IAdminService extends IService<Admin> {
    /**
     * 登录之后返回token
     *
     * @param username 用户名
     * @param password 密码
     * @param code 验证码
     * @param httpServletRequest request
     * @return 统一返回对象
     */
    RespBean login(String username, String password, String code, HttpServletRequest httpServletRequest);

    /**
     * 根据用户名获取用户信息
     *
     * @param username 用户名
     * @return 用户信息
     */
    Admin getAdminByUserName(String username);

    /**
     * 根据用户id查询角色列表
     *
     * @param id 用户id
     * @return 用户id对应的角色列表
     */
    List<Role> getRolesByAdminId(@Param("id") Long id);

    /**
     * 获取所有操作员
     *
     * @param keywords 搜索关键词
     * @return 查询到的操作员集合
     */
    List<Admin> getAllOperates(String keywords);

    /**
     * 更新操作员角色
     *
     * @param adminId 操作员id
     * @param rids 要更新的角色
     * @return 更新结果
     */
    RespBean updateAdminRole(Long adminId, Long[] rids);

    void updateAdminPwd(String oldPwd, String pwd, String adminId);
}
